<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>let关键字</title>
</head>
<body>
<button>按钮1</button>
<button>按钮2</button>
<button>按钮3</button>
<button>按钮4</button>
<button>按钮5</button>
<script>
    var btns = document.getElementsByTagName('button');
    // for (var i=0; i<btns.length;i++){
    //     //使用闭包
    //     (function (i){
    //         btns[i].addEventListener('click',function (){
    //             console.log(i);
    //         })
    //     })(i)
    // }
    for (let i=0; i<btns.length;i++){
        btns[i].addEventListener('click',function (){
            console.log(i);
        })
    }
</script>
<script>
    /* 为什么新增let声明变量的关键字
        var 不好用 1. var 可以重复声明， 2. var无法限制修改， var 没有块级作用域
        块级作用域: {}  if() {} for() {}
        只有在function(){}函数中有作用域
        let 命令不存在变量提升

    */
    var a = 10;
    var a = 30;
    function demo(){
        var a = 50;
    }
    demo();
    if(true){
        var a = 100;
    }
    console.log(a);
    let c = 15;
    // let c = 25;//报错不能重复定义
    console.log(c);
    //可以先声明后赋值
    let d;
     d=20;
    console.log('d的值'+d);
    //let 命令不存在变量提升
    // console.log('e的值'+e);
    // let e= 10;
    //var 存在变量提升
    var v = 1;
    (function() {
        console.log(v); // undefined
        var v = 12
    })();
</script>
</body>
</html>